/**
 * 根据两点经纬度计算距离（Haversine公式）
 * @param {number} lat1 点1纬度
 * @param {number} lng1 点1经度
 * @param {number} lat2 点2纬度
 * @param {number} lng2 点2经度
 * @param {string} unit 单位：'km'-千米（默认） | 'm'-米 | 'mile'-英里
 * @returns {number} 两点间距离
 */
export const  getDistanceBetweenLatLng=(lat1, lng1, lat2, lng2,radius)=> {
  // 地球半径常量（千米）
  const R = 6371;
  
  // 将角度转换为弧度
  const rad = (degree) => degree * Math.PI / 180;
  
  // 计算差值
  const dLat = rad(lat2 - lat1);
  const dLng = rad(lng2 - lng1);
  
  // 应用Haversine公式
  const a = 
    Math.sin(dLat/2) * Math.sin(dLat/2) +
    Math.cos(rad(lat1)) * Math.cos(rad(lat2)) *
    Math.sin(dLng/2) * Math.sin(dLng/2);
  
  const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
  
  // 计算基础距离
  let distance = R * c * 1000;
    console.log("distance===",distance)
  if(radius > distance){
	  console.log("设备在围栏列表")
	  return true
  }else{
	  console.log("设备已离开围栏列表")
	  return false
  }
  
  // // 单位转换
  // switch(unit.toLowerCase()) {
  //   case 'm':
  //     distance *= 1000;
  //     break;
  //   case 'mile':
  //     distance *= 0.621371;
  //     break;
  // }
}

